package com.zwh.se.string;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author yexi
 * 正则表达式的使用
 */
public class RegularExpression {
    public static void main(String[] args) {
        //正则表达式
        //单个字符的验证
        System.out.println("abc".matches("abc"));//是否完全匹配
        System.out.println("ab".matches("[abc][abc]"));//验证多字符时,判断的条件是或,是否是a或b或c
        System.out.println("d".matches("^[abc]"));//验证的是非
        //单个字符的范围验证

        //需求:验证一个字符是否是小写
        System.out.println("a".matches("[a-z]"));
        //需求:验证一个字符是否是小写或数字或大写
        System.out.println("A".matches("[a-z0-9A-Z]"));
        //需求:验证一个字符是否是中文
        System.out.println("我".matches("[\u4e00-\u6e00]"));

        //匹配数字 \d
        System.out.println("9".matches("\\d"));/*\在java里面是转义字符,所以要引用\d的话要写\\d*/
        //匹配字母（不是字符）、数字、下划线(注意:不能匹配$、中文等)
        System.out.println("$".matches("\\w"));//$不属于其中
        //匹配所有的空白字符(包括换行、空白字符、制表符、空格等,注意不包含空字符串)
        System.out.println(" ".matches("\\s"));
        System.out.println("\n".matches("\\s"));
        System.out.println("\t".matches("\\s"));
        //.匹配任意字符(不包含空白字符)
        System.out.println("我".matches("."));

        //需求:给定一个文件名,fileName = "123.png",请提取文件的名字
        String fileName = "icon123.png";
        String[] arr = fileName.split("\\.");//将其圆点特性取消
        for (String item : arr) {
            System.out.println(item);
        }


        //2>正则中的量词
        System.out.println("123".matches("\\d{3}"));//数字必须出现3次
        //需求:验证图片是否以icon开头
        System.out.println("iconbcd".matches("icon[a-z]+"));

        //验证一个字符串是否是手机号码
        //13- 15- 16- 17- 18- 19-
        //System.out.println("13622539005".matches("1[3|5-9]\d*"));
        /*或写[3|5-9]或写(3|[5-9]*)*/

        Matcher scatsUrl_m = Pattern.compile("(\\d+.\\d+.\\d+.\\d+):(\\d+)").matcher("192.168.3.231:234");
        if (scatsUrl_m.find()) {
            String scatsHost = scatsUrl_m.group(1);
            System.out.println(scatsHost);
            String scatsPort = scatsUrl_m.group(2);
            System.out.println(scatsPort);
        }
    }
}